import { def } from './untils.js'
import defineReactive from './defineReactive.js'

// 创建一个 observer 类 将一个正常的object转换为每个层级的属性（可以被侦测）的object

export default class Observer {
    constructor(value){

        def(value,'__ob__',this ,false)   // 为实例增加 __ob__属性，

        this.walk(value)
        
        console.log('我是observer构造函数',value)
    }
    // 循环 value 将每个属性都加上get set
    walk(value){
        for (const key in value) {
            defineReactive(value , key )
        }
    }
}